﻿/*
 * Criado por SharpDevelop.
 * Usuário: Administrador
 * Data: 16/6/2011
 * Hora: 9:49
 * 
 * Para alterar este modelo use Ferramentas | Opções | Codificação | Editar Cabeçalhos Padrão.
 */
using System;
using System.Collections.Generic;

namespace estacionamento.classes
{
	/// <summary>
	/// Description of Entrada
	/// </summary>
	public class Entrada : estacionamento.comum.DefaultClass, estacionamento.comum.IClass
	{
		
		#region private declaration
		private string entrada_nome;
		private string entrada_apto;
		private string entrada_bloco;
		private string entrada_v_placa;
		private string entrada_v_modelo;
		private string entrada_v_cor;
		private string entrada_v_cidade;
		private string entrada_v_estado;
		private string entrada_num_usuarios;
		private string entrada_data_entrada;
		private string entrada_data_saida;
		private string entrada_hora_entrada;
		private string entrada_hora_saida;
		private string entrada_situacao;
		#endregion
		
		#region Properties
		public string Nome {
			get { return entrada_nome; }
			set { entrada_nome = value; }
		}
		
		public string Apto {
			get { return entrada_apto; }
			set { entrada_apto = value; }
		}
		
		public string Bloco {
			get { return entrada_bloco; }
			set { entrada_bloco = value; }
		}
		
		public string Vplaca {
			get { return entrada_v_placa; }
			set { entrada_v_placa = value; }
		}
		
		public string Vmodelo {
			get { return entrada_v_modelo; }
			set { entrada_v_modelo = value; }
		}
		
		public string Vcor {
			get { return entrada_v_cor; }
			set { entrada_v_cor = value; }
		}
		
		public string Vcidade {
			get { return entrada_v_cidade; }
			set { entrada_v_cidade = value; }
		}
		
		public string Vestado {
			get { return entrada_v_estado; }
			set { entrada_v_estado = value; }
		}
		
		public string NumUsuarios {
			get { return entrada_num_usuarios; }
			set { entrada_num_usuarios = value; }
		}
		
		public string Situacao {
			get { return entrada_situacao; }
			set { entrada_situacao = value; }
		}
		
		public string DataEntrada {
			get { return entrada_data_entrada; }
			set { entrada_data_entrada = value; }
		}
		
		public string DataSaida {
			get { return entrada_data_saida; }
			set { entrada_data_saida = value; }
		}
		
		public string HoraEntrada {
			get { return entrada_hora_entrada; }
			set { entrada_hora_entrada = value; }
		}
		
		public string HoraSaida {
			get { return entrada_hora_saida; }
			set { entrada_hora_saida = value; }
		}
		
		#endregion
		
		public Entrada()
		{
			clear();
			gsql.table = "entrada";
			_sequence  = "entrada_entrada_id";
		}

		public void clear()
		{
			entrada_nome			= string.Empty;
			entrada_apto			= string.Empty;
			entrada_bloco			= string.Empty;
			entrada_v_placa			= string.Empty;
			entrada_v_modelo		= string.Empty;
			entrada_v_cor			= string.Empty;
			entrada_v_cidade		= string.Empty;
			entrada_v_estado		= string.Empty;
			entrada_num_usuarios	= string.Empty;
			entrada_situacao		= string.Empty;
		}
		
		public override void @get(System.Data.DataRow dr)
		{
			_id						= dr["entrada_id"].ToString();
			entrada_nome			= dr["entrada_nome"].ToString();		
			entrada_apto			= dr["entrada_apto"].ToString();		
			entrada_bloco			= dr["entrada_bloco"].ToString();		
			entrada_v_placa			= dr["entrada_v_placa"].ToString();		
			entrada_v_modelo		= dr["entrada_v_modelo"].ToString();	
			entrada_v_cor			= dr["entrada_v_cor"].ToString();		
			entrada_v_cidade		= dr["entrada_v_cidade"].ToString();	
			entrada_v_estado		= dr["entrada_v_estado"].ToString();	
			entrada_num_usuarios	= dr["entrada_num_usuarios"].ToString();
			entrada_data_entrada    = dr["entrada_data_entrada"].ToString();
			entrada_data_saida      = dr["entrada_data_saida"].ToString();
			entrada_hora_entrada    = dr["entrada_hora_entrada"].ToString();
			entrada_hora_saida      = dr["entrada_hora_saida"].ToString();
			entrada_situacao		= dr["entrada_situacao"].ToString();				
		}
		
		public override void setGsql()
		{
			gsql.setValue(_id					, "entrada_id");
			gsql.setValue(entrada_nome			, "entrada_nome");		
			gsql.setValue(entrada_apto			, "entrada_apto");		
			gsql.setValue(entrada_bloco			, "entrada_bloco");		
			gsql.setValue(entrada_v_placa			, "entrada_v_placa");		
			gsql.setValue(entrada_v_modelo		, "entrada_v_modelo");	
			gsql.setValue(entrada_v_cor			, "entrada_v_cor");		
			gsql.setValue(entrada_v_cidade		, "entrada_v_cidade");	
			gsql.setValue(entrada_v_estado		, "entrada_v_estado");	
			gsql.setValue(entrada_num_usuarios	, "entrada_num_usuarios");
			gsql.setValue(Convert.ToDateTime(entrada_data_entrada).ToString("yyyy-MM-dd"),
			              "entrada_data_entrada");
			gsql.setValue(Convert.ToDateTime(entrada_data_saida).ToString("yyyy-MM-dd"),
			              "entrada_data_saida");		
			gsql.setValue(entrada_hora_entrada, "entrada_hora_entrada");
			gsql.setValue(entrada_hora_saida  , "entrada_hora_saida");
			gsql.setValue(entrada_situacao		, "entrada_situacao");	
		}
		
		
	}


	public class Entradas : estacionamento.comum.DefaultList, estacionamento.comum.IList
	{
		public Entradas()
		{
			gsql.table = "entrada";
		}
		

		public Entrada get(int index)
		{
			return (Entrada)items[index];
		}
		
		public Entrada get()
		{
			return (Entrada)items[index];
		}
		
		public bool fillList()
		{
			gsql.prepare();
			gsql.setValue("","*");
			gsql.additionalWhere= "ORDER BY entrada_data_entrada, entrada_hora_entrada";
			
			return mountList();
		}
		
		public bool fillListAbertas()
		{
			gsql.prepare();
			gsql.setValue("","*");
			gsql.conditionalWhere = " entrada_situacao = 'A' ";			
			gsql.additionalWhere= "ORDER BY entrada_data_entrada, entrada_hora_entrada";
			
			return mountList();
		}		
		
		private bool mountList()
		{
			int tam;
			
			if (!gsql.execute())
			{
				msgErro = gsql.getMsgErro();
				return false;
			}
			
			tam = gsql.getRowCount();
			clear();
			for (int i=0; i < tam; i++)
			{
				Entrada obj = new Entrada();
				obj.get(gsql.getRow(i));
				
				items.Add(obj);
			}
			return true;
		}

		
		public bool searchByApto(string value)
		{
			int tam;
			
			tam= items.Count;
			for(int i=0; i < tam; i++)
			{
				if (((Entrada)items[i]).Apto.Equals(value))
				{
					index = i;
					return true;
				}
			}
			return false;
		}
		
	}
}
